package com.zg.third.qcc.service.impl;

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.google.common.collect.Maps;
import com.zg.third.api.domain.vo.*;
import com.zg.third.qcc.constant.ThirdE;
import com.zg.third.qcc.enm.QccUrlEnum;
import com.zg.third.qcc.service.QccService;
import com.zg.third.qcc.utils.QccUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 企查查服务实现类
 *
 * @author zhanfeng.liang
 * @since 2025-07-29
 */

@Slf4j
@Service
public class QccServiceImpl implements QccService {



    @Override
    public QccKycVo kyc(String searchKey) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", searchKey);
        String result = QccUtil.request(QccUrlEnum.KYC.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        QccKycVo kycVo = JSONUtil.toBean(resultObject, QccKycVo.class);
        if(kycVo.getVerifyResult()==0){
            //TODO
        }
        return kycVo;
    }

    @Override
    public Integer landMergeCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.LAND_MERGE_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");
        //JSONObject resultObject = jsonObject.getJSONObject("Result");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);
        return 0;
    }

    @Override
    public Integer supplier(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
//        map.put("pageSize", "50");
//        map.put("pageIndex", "1");
//        map.put("year", "2025");//年份，非必须
        String result = QccUtil.request(QccUrlEnum.SUPPLIER.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);
        
        return p.getTotalRecords();
    }

    @Override
    public Integer customer(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        map.put("year", "2025");//年份，非必须
        String result = QccUtil.request(QccUrlEnum.CUSTOMER.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public QccSeriousIllegalCheckVo seriousIllegalCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);
        String result = QccUtil.request(QccUrlEnum.SERIOUS_ILLEGAL_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        QccSeriousIllegalCheckVo seriousIllegalCheckVo = JSONUtil.toBean(resultObject, QccSeriousIllegalCheckVo.class);
        if(seriousIllegalCheckVo.getVerifyResult()==0){
            //TODO
        }
        return seriousIllegalCheckVo;
    }

    @Override
    public Integer judicialSaleCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.JUDICIAL_SALE_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer caseFilingCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
//        map.put("pageSize", "50");
//        map.put("pageIndex", "1");
        map.put("caseIdentity", "1");//案件身份（1：被告；2：原告）
        String result = QccUtil.request(QccUrlEnum.CASE_FILING_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer courtAnnoCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        map.put("caseIdentity", "1");//案件身份（1：被告；2：原告）
        String result = QccUtil.request(QccUrlEnum.COURT_ANNO_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer endExecuteCaseCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.END_EXECUTE_CASE_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer adminPenaltyCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
//        map.put("pageSize", "50");
//        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.ADMIN_PENALTY_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");
        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer envPunishmentCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
//        map.put("pageSize", "50");
//        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.ENV_PUNISHMENT_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer publishNoticeCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
//        map.put("pageSize", "50");
//        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.PUBLISH_NOTICE_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer disciplinaryCheck(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.DISCIPLINARY_CHECK.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer patent(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.PATENT_V4.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public Integer copyRight(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("keyword", keyword);
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        map.put("pageSize", "50");
        map.put("pageIndex", "1");
        String result = QccUtil.request(QccUrlEnum.COPY_RIGHT.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        JSONObject pagingObject = jsonObject.getJSONObject("Paging");
        PagingVo p = JSONUtil.toBean(pagingObject, PagingVo.class);

        return p.getTotalRecords();
    }

    @Override
    public QccEnterpriseInfoVo enterpriseInfo(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//搜索关键字（企业名称、统一社会信用代码）
        String result = QccUtil.request(QccUrlEnum.ENTERPRISE_INFO.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        QccEnterpriseInfoVo enterpriseInfoVo = JSONUtil.toBean(resultObject, QccEnterpriseInfoVo.class);
        if(enterpriseInfoVo.getVerifyResult()==0){
            //TODO 数据不存在
        }
        return enterpriseInfoVo;
    }

    @Override
    public QccIpoVo ipo(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("stockCode", keyword);//股票代码、企业名称、统一社会信用代码
        String result = QccUtil.request(QccUrlEnum.IPO.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject resultObject = jsonObject.getJSONObject("Result");
        QccIpoVo ipoVo = JSONUtil.toBean(resultObject, QccIpoVo.class);
        
        return ipoVo;
    }

    @Override
    public List<QccTaxCreditVo> taxCredit(String keyword) {
        Map<String,Object> map = Maps.newHashMap();
        map.put("searchKey", keyword);//股票代码、企业名称、统一社会信用代码
        String result = QccUtil.request(QccUrlEnum.TAX_CREDIT.getApiCode(), map);
        if (result == null) {
            ThirdE.QCC_ERROR.happen();
        }
        JSONObject jsonObject = JSONUtil.parseObj(result);
        String status=jsonObject.getStr("Status");
        // JSONObject resultObject = jsonObject.getJSONObject("Result");

        if(!"200".equals( status)){
            ThirdE.QCC_ERROR.happen();
        }
        JSONArray resultArray = jsonObject.getJSONArray("Result");
        List<QccTaxCreditVo> taxCreditList = JSONUtil.toList(resultArray, QccTaxCreditVo.class);

        return taxCreditList;
    }



    public static void main(String[] args) {
        // 正确转义的JSON字符串
        String json = "{\n" +
                "    \"OrderNumber\": \"IPO2019071218062722987306\",\n" +
                "    \"Result\": {\n" +
                "        \"BaseInfo\": {\n" +
                "            \"YesterdayClosePrice\": \"13.54\",\n" +
                "            \"TodayOpenPrice\": \"13.60\",\n" +
                "            \"MarketDate\": \"1991-04-03\",\n" +
                "            \"InternetReleasesDate\": \"1989-03-10\",\n" +
                "            \"StockCategory\": \"深交所主板A股\",\n" +
                "            \"Companyname\": \"平安银行股份有限公司\",\n" +
                "            \"EnglishName\": \"Ping An Bank Co., Ltd.\",\n" +
                "            \"HistoryName\": \"深发展A->S深发展A->深发展A\",\n" +
                "            \"RegCapital\": \"172亿\",\n" +
                "            \"Industry\": \"银行\",\n" +
                "            \"RegNo\": \"91440300192185379H\",\n" +
                "            \"PersonNumber\": \"34626\",\n" +
                "            \"ManagerNumber\": \"30\",\n" +
                "            \"ACode\": \"000001\",\n" +
                "            \"AShortName\": \"平安银行\",\n" +
                "            \"BCode\": \"--\",\n" +
                "            \"BShortName\": \"--\",\n" +
                "            \"HCode\": \"--\",\n" +
                "            \"HShortName\": \"--\",\n" +
                "            \"LawFirm\": \"广东信达律师事务所\",\n" +
                "            \"AccountingFirm\": \"普华永道中天会计师事务所(特殊普通合伙)\",\n" +
                "            \"OperName\": \"谢永林\",\n" +
                "            \"ChairmanSecretary\": \"周强\",\n" +
                "            \"Director\": \"谢永林\",\n" +
                "            \"GeneralManager\": \"胡跃飞\",\n" +
                "            \"StockAgent\": \"吕旭光\",\n" +
                "            \"IndependentDirector\": \"王春汉,王松奇,韩小京,郭田勇,杨如生\",\n" +
                "            \"TelNumber\": \"0755-82080387\",\n" +
                "            \"Email\": \"pabdsh@pingan.com.cn\",\n" +
                "            \"Fax\": \"0755-82080386\",\n" +
                "            \"Website\": \"www.bank.pingan.com\",\n" +
                "            \"Area\": \"广东\",\n" +
                "            \"ZipCode\": \"518001\",\n" +
                "            \"OfficeAddress\": \"广东省深圳市罗湖区深南东路5047号\",\n" +
                "            \"RegAddress\": \"中华人民共和国广东省深圳市罗湖区深南东路5047号\",\n" +
                "            \"PBR\": \"0.94\",\n" +
                "            \"PER\": \"8.39\"\n" +
                "        },\n" +
                "        \"IPOPublishInfo\": {\n" +
                "            \"EstablishDate\": \"1987-12-22\",\n" +
                "            \"ReleasesRate\": \"--\",\n" +
                "            \"ReleasesType\": \"其他发行方式\",\n" +
                "            \"ParValue\": \"20.00\",\n" +
                "            \"ReleasesAmount\": \"67.5万\",\n" +
                "            \"ParReleasesValue\": \"40.00\",\n" +
                "            \"ReleasesCost\": \"--\",\n" +
                "            \"ReleasesTotal\": \"2700万\",\n" +
                "            \"NetRaisedFunds\": \"--\",\n" +
                "            \"FirstDayOpenPrice\": \"49.00\",\n" +
                "            \"FirstDayClosePrice\": \"49.00\",\n" +
                "            \"FirstDayChangeRate\": \"0.00%\",\n" +
                "            \"DownRate\": \"--\",\n" +
                "            \"PricingSuccRate\": \"--\"\n" +
                "        },\n" +
                "        \"IpoTheme\": \" 要点1: 所属板块  HS300_ MSCI大盘 MSCI中国 富时概念 广东板块 机构重仓 融资融券 深成500 深股通 深证100R 深圳特区 银行 证金持股 转债标的  要点2: 经营范围  办理人民币存、贷、结算、汇兑业务;人民币票据承兑和贴现;各项信托业务;经监管机构批准发行或买卖人民币有价证券;发行金融债券;代理发行、代理兑付、承销政府债券;买卖政府债券;外汇存款、汇款;境内境外借款;从事同业拆借;外汇借款;外汇担保;在境内境外发行或代理发行外币有价证券;买卖或代客买卖外汇及外币有价证券、自营外汇买卖;贸易、非贸易结算;办理国内结算;国际结算;外币票据的承兑和贴现;外汇贷款;资信调查、咨询、见证业务;保险兼业代理业务;代理收付款项;黄金进口业务;提供信用证服务及担保;提供保管箱服务;外币兑换;结汇、售汇;信用卡业务;经有关监管机构批准或允许的其他业务。  要点3: 商业银行业务  平安银行是全国性股份制商业银行。本行经有关监管机构批准后,经营下列各项商业银行业务:(一)吸收公众存款;(二)发放短期、中期和长期贷款;(三)办理国内外结算;(四)办理票据承兑与贴现;(五)发行金融债券;(六)代理发行、代理兑付、承销政府债券;(七)买卖政府债券、金融债券;(八)从事同业拆借;(九)买卖、代理买卖外汇;(十)从事银行卡业务;(十一)提供信用证服务及担保;(十二)代理收付款项及代理保险业务;(十三)提供保管箱服务;(十四)结汇、售汇业务;(十五)离岸银行业务;(十六)资产托管业务;(十七)办理黄金业务;(十八)财务顾问、资信调查、咨询、见证业务;(十九)经有关监管机构批准的其他业务。  要点4: 银行行业  防范金融风险、服务实体经济是未来几年我国金融业的重中之重,银行业必须全面贯彻党的十九大精神,围绕我国社会主要矛盾变化,按照高质量发展要求,全面回归服务实体经济本源,助力打好\\\"防范化解重大风险、精准脱贫和污染防治\\\"三大攻坚战。  要点5: 导向清晰的发展战略  面对国内外复杂多变的经济金融形势,本行清晰认识自身独特优势和资源环境,有所为有所不为,选择了零售转型的战略道路,提出了\\\"中国最卓越,全球领先的智能化零售银行\\\"的战略目标,确定了\\\"科技引领、零售突破、对公做精\\\"的策略方针。在清晰的战略指引下,本行从业务导向、模式创新、组织改革、风险防控、人才引进与培养等方面多管齐下,稳步推进战略实施,取得了良好的成效。  要点6: 优势突出的综合金融  综合金融是本行的特色优势。本行依托庞大的个人客户基础、强大的品牌影响力、广泛的分销网络以及控股母公司平安集团的全金融牌照,打造了线上、线下完备的综合金融产品体系和服务平台,形成了富有竞争力的综合金融合作机制和银行内部管理组织模式,为零售和公司业务转型发展开辟了新的路径。  要点7: 深入基因的创新文化  植根于中国的改革前沿阵地——深圳,\\\"创新\\\"是本行与生俱来的的基因。本行一直以来致力于以创新引领市场。在顶层设计上,成立全行层面以及零售、公司条线层面的\\\"创新委员会\\\",协调跨条线、跨职能的资源,积极鼓励并大力推动创新;在实施推进上,通过\\\"敏捷组织\\\"、\\\"创新车库\\\",快速迭代,紧跟市场热点,快速响应客户需求。  要点8: 证金公司增持  2018年10月23日公告,从前十名股东持股情况来看,中国证券金融股份有限公司持股42923.27万股,占公司总股本的2.5%,较半年报披露其持股42524.74万股,占比2.48%,有所提高。  \"\n" +
                "    },\n" +
                "    \"Status\": \"200\",\n" +
                "    \"Message\": \"查询成功\"\n" +
                "}";

        try {
            JSONObject jsonObject = JSONUtil.parseObj(json);
            String status=jsonObject.getStr("Status");
            JSONObject resultObject = jsonObject.getJSONObject("Result");
            QccIpoVo ipoVo = JSONUtil.toBean(resultObject, QccIpoVo.class);
            System.out.println(ipoVo);

        } catch (cn.hutool.json.JSONException e) {
            System.err.println("JSON解析错误: " + e.getMessage());
            e.printStackTrace();
        }
    }
}
